package reflect.annotation;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

/*
    JAVA中的注解必须先定义后使用

    JAVA提供了很多元注解,用于为我们定义的注解标注,可以说明某些具体的功能
    例如
    @Target用于说明当前注解可以被应用的位置.所有的位置都定义在ElementType上.

    @Retention用于定义当前注解的保留级别,保留级别有三种,定义在RetentionPolicy中
      RetentionPolicy.SOURCE:当前注解仅保留在源代码中,编译为字节码后不保留该注解
      RetentionPolicy.CLASS:默认的保留级别.当前注解保留到编译后的字节码文件中,但是不可被反射机制访问
      RetentionPolicy.RUNTIME:当前注解保留到编译后的字节码文件中,可被反射机制访问
 */
@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
public @interface AutoRunClass {
}







